#include "MAXSEL.h"

MAXSEL_T* MAXSEL_t;


//************************************
// Method:    	CALCU_SAMA					//< SAMA运算函数
// Programmer:  lww
// Time:		2018/11/16
// Returns:   	bool						//< 成功：true；失败：false
// Parameter: 	Model_Base_t * arg			//< 模块参数结构体指针
// Parameter: 	float dt					//< 运算周期
// Parameter: 	bool * DI					//< 数字量输入值数组指针
// Parameter: 	bool * DO					//< 数字量输出值数组指针
// Parameter: 	bool * AI					//< 模拟量输入值数组指针
// Parameter: 	bool * AO					//< 模拟量输出值数组指针
//************************************
bool CALCU_SAMA(MAXSEL)(Model_Base_t* arg, float dt, bool* DI, bool* DO, float* AI, float* AO)
{
	/****************变量定义区开始**************/
	/*<<<<<定义输出变量>>>>>*/
	float Output_Value = 0;			//< 输出值
	/*<<<<<<<<<<<<<<<<<<<<<<*/
	int i, AINum;
	float max_value = AI[0];
	/****************变量定义区结束**************/

	NAME(MAXSEL)* Obj = (NAME(MAXSEL)*)arg;

	/****************变量赋值**************/
	AINum = Obj->Base.IO_Num.AI_Num;
	/**************变量赋值结束************/

	/********************************************/
	/**************算法功能实现开始**************/
	/********************************************/
	for (i = 0; i < AINum; i++)
	{
		if (AI[i] > max_value)
			max_value = AI[i];
	}
	Output_Value = max_value;
	/********************************************/
	/**************算法功能实现结束**************/
	/********************************************/

	/****************运算结果输出**************/
	AO[0] = Output_Value;
	/**************运算结果输出完毕************/
	return true;
}

